var picMax=1; // 图片上传最大个数
var videoMax=3; // 视频上传最大个数
var audioMax=3; // 音频上传最大个数

var picIsCreate=true; // 是否可以创建图片上传容器
var videoIsCreate=true; // 是否可以创建视频上传容器
var audioIsCreate=true; // 是否可以创建音频上传容器
var isUplod=true; // 是否允许上传
var isReUpload=true; // 是否允许修改上传的文件


/**
 * 删除按钮 事件
 */
function delUpload(obj){
    $(obj).parent().remove()
}


/**
 * 文件上传前验证
 * @param type
 * @param obj
 */
function beforeUpload(type,obj){
    var maxLength;
    var index=$(obj).parent().index();
    var length=$(obj).parent().parent().children('div.zz-box').length
    switch(type){
        case 'pic':
            maxLength=picMax;
            console.log(index, length)
            picIsCreate=(index >= length-1)
            break;
        case 'video':
            maxLength=videoMax;
            videoIsCreate=(index >= length-1)
            break;
        case 'audio':
            maxLength=audioMax;
            audioIsCreate=(index >= length-1)
            break;
    }
    if(index >= length-1) {
        if (length > maxLength && !$(obj).siblings('input[type="file"]').val()) {
            swal('超过上传最大个数')
        } else {
            if (isUplod) {
                $(obj).siblings('input[type="file"]').click()
            } else {
                $(obj).siblings('input[type="file"]').remove()
            }
        }
    }else{
        if (isUplod) {
            $(obj).siblings('input[type="file"]').click()
        } else {
            $(obj).siblings('input[type="file"]').remove()
        }
    }
}
/**
 * 文件上传
 * @param type 上传文件格式 包含img、video、audio
 * @param obj 被选中的上传容器对象
 */
function upload(type,obj) {
    switch(type){
        case 'video':
            videoUpload(obj);
            break;
        case 'pic':
            picUpload(obj);
            break;
        case 'audio':
            audioUpload(obj);
            break;
    }
}

/**
 * 创建图片上传容器
 */
function createPic(type){
    var str='';
    if(type){
        str = `<div class="zz-box" >
                <div class="prePic"></div>
                <input type="hidden" class="picUrl" name="picUrl">
                <p class="zz-delete" onclick="delUpload(this)"></p> 
             </div>`
    }else {
        str = `<div class="zz-box" >
                <input type="file" name="picUpload" id="picUpload" onchange="upload('pic',this);"/>
                <div class="prePic" onclick="beforeUpload('pic',this)"></div>
                <input type="hidden" class="picUrl" name="picUrl">
                <p onclick="delUpload(this)"></p>
             </div>`
    }
    $('.picBox').append(str)
}
/**
 * 图片上传
 * @param obj
 */
function picUpload(obj) {
    var file=obj.files[0]
    if(file) {
        if (file.type.indexOf('image') > -1) {
            var form = new FormData();
            form.append('file001', file);
            ajaxCommon.upload('post', baseQuestionUrl + 'photo', form, function (data) {
                if (data.code === 200) {
                    $(obj).siblings('.picUrl').val(data.data).siblings('.prePic').css({
                        background: 'url("' + data.data + '") center no-repeat',
                        backgroundSize: 'cover'
                    });
                    $(obj).siblings('p').addClass('zz-delete');
                    if (isReUpload){
                        var index = $(obj).parent().index();
                        $('.zz-box:eq('+index+') input[type=file]').remove();
                    }
                    if (picIsCreate) {
                        createPic();
                    }
                }
            }, function () {
                swal("图片上传失败");
                $(obj).val('');
            });
        } else {
            swal('上传的图片格式有误');
            $(obj).val('');
        }
    }
}

/**
 * 创建视频上传容器
 */
function createVideo(type){
    var str='';
    if(type) {
        str = `<div class="zz-box" >
                <video src="" class="prePic" width="160"></video>
                <input type="hidden" class="videoUrl" name="videoUrl">
                <input type="text" class="videoName" style="display: none;"/>
                <p class="zz-delete" onclick="delUpload(this)"></p>
            </div>`
    } else {
        str = `<div class="zz-box" >
                <input type="file" name="videoUpload" id="videoUpload" onchange="upload('video',this);"/>
                <video src="" class="prePic" width="160" onclick="beforeUpload('video',this)"></video>
                <input type="hidden" class="videoUrl" name="videoUrl">
                <input type="text" class="videoName" style="display: none;"/>
                <p onclick="delUpload(this)"></p>
            </div>`
    }
    $('.videoBox').append(str)
}
/**
 * 视频上传
 * @param obj
 */
function videoUpload(obj) {
    var file=obj.files[0];
    if(file) {
        if (file.type.indexOf('video') > -1) {
            var form = new FormData();
            form.append('file0', file);
            ajaxCommon.upload('post', baseQuestionUrl + 'video', form, function (data) {
                if (data.code === 200) {
                    $(obj).data('data',1);
                    $(obj).siblings('.videoUrl').val(data.data);
                    $(obj).siblings('video').attr('src', data.data);
                    $(obj).siblings('.videoName').show();
                    $(obj).siblings('.videoName').val(file.name.split('.')[0]);
                    $(obj).siblings('p').addClass('zz-delete');
                    if (videoIsCreate) {
                        createVideo()
                    }
                }
            }, function () {
                swal("视频上传失败");
                $(obj).val('')
            });
        } else {
            swal('上传的视频格式有误')
            $(obj).val('')
        }
    }
}


/**
 * 创建音频上传容器
 */
function createAudio(type){
    var str='';
    if(type) {
        str = `<div class="zz-box" >
                <audio src="" class="prePic" width="160"></audio>
                <input type="hidden" class="audioUrl" name="audioUrl">
                <p class="zz-delete" onclick="delUpload(this)"></p>
            </div>`
    } else {
        str = `<div class="zz-box" >
                <input type="file" name="audioUpload" id="audioUpload" onchange="upload('audio',this);"/>
                <audio src="" class="prePic" width="160" onclick="beforeUpload('audio',this)"></audio>
                <input type="hidden" class="audioUrl" name="audioUrl">
                <p onclick="delUpload(this)"></p>
            </div>`
    }
    $('.audioBox').append(str);
}
/**
 * 音频上传
 * @param obj
 */
function audioUpload(obj) {
    var file=obj.files[0];
    console.log(obj);
    return false;
    if(file) {
        if (file.type.indexOf('audio') > -1) {
            var form = new FormData();
            form.append('file0', file);
            ajaxCommon.upload('post', baseQuestionUrl + 'audio', form, function (data) {
                if (data.code === 200) {
                    $(obj).siblings('.videoUrl').val(data.data).siblings('.prePic').css({
                        background: 'url("' + data.data + '") center no-repeat',
                        backgroundSize: 'cover'
                    });
                    $(obj).siblings('p').addClass('zz-delete');
                    if (audioIsCreate) {
                        createAudio()
                    }
                }
            }, function () {
                swal("音频上传失败");
                $(obj).val('')
            });
        } else {
            swal('上传的音频格式有误');
            $(obj).val('')
        }
    }
}

